using System;
using System.Collections;
using System.Data;
using ICachePolicy = PHSRAG.Insight21.Policy.ICachePolicy;

namespace PHSRAG.Insight21.FormsManagement
{
	/// <summary>
	/// TextBoxQuestion abstracts the notion of a QuestionnaireItem which allows the user to enter any text
	/// Rendering Xml
	/// </summary>
	public class TextBoxQuestion : QuestionnaireItem
	{
		public class PropertyNames
		{
			public const string TextModeProperty = "TextMode";
			public const string RowsProperty = "Rows";
			public const string ColsProperty = "Columns";
			public const string ReadOnlyProperty = "ReadOnly";
			public const string FormatProperty = "Format";
			public const string MaxCharsProperty = "MaxLength";
			public const string MaskProperty = "Mask";
			public const string MinValueProperty = "MinValue";
			public const string MaxValueProperty = "MaxValue";
		}

		/// <summary>
		/// Options for the Format dropdown. 
		/// </summary>
		public enum FormatOptions
		{
			None,
			Alphabet,
			AlphaNumeric,
			Numeric
		}

		/// <summary>
		/// Constructs a new TextBoxQuestion object based on the Cache Policy passed in as a parameter. 
		/// All the instance variables will be set to default values of their associated types.
		/// </summary>
		/// <param name="cachePolicy">The prevalent cache policy</param>
		public TextBoxQuestion(ICachePolicy cachePolicy, DataRow dataRow): base(cachePolicy, dataRow)
		{
			 
		}
	
		/// <summary>
		/// Constructs a new TextBoxQuestion object based on the Cache Policy passed in as a parameter. 
		/// All the instance variables will be set to the corresponding values specified in the Data Row
		/// </summary>
		/// <param name="cachePolicy">The prevalent cache policy</param>
		/// <param name="dataRow">DataRow holding the values to be assigned to instance variables</param>
		public TextBoxQuestion(ICachePolicy cachePolicy): base(cachePolicy)
		{
			 
		}
		/// <summary>
		/// Gets the type of the questionnaire item (TextBoxItemType)
		/// </summary>
		public override string Type
		{
			get	{ return QuestionnaireItem.TextBoxItemType; }
		}
	}
}
